package cn.wit.testalgorithms;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * 136.只出现一次的数字
 * 
 * @author 16604
 *
 */
public class DemoOnlyAppearOnceNumber {
	public static void main(String[] args) {

		int[] a = { 2, 2, 1 };

		System.out.println(singleNumber(a));
	}

	public static int singleNumber(int[] nums) {
		
			
		Arrays.sort(nums);
		
		//定义另一个集合，用来存放重复的元素
		Map mp = new HashMap<>();
			
		// 定义一个map集合，用来转换数组
		Map map = new HashMap<>();
		
		int count = 0;
	
		//遍历map集合，快速找到相同元素
		
		for(int i =0;i<nums.length;i++) {
			
			if(map.containsValue(nums[i])) {
				
				//重复的元素加入
				mp.put(i, nums[i]);
				
				count++;
			}
			else{
				map.put(i, nums[i]);
			}
			
		}
		
		//找出那个没有出现重复数字的
		for(int i = 0;i<nums.length;i++) {
			if(mp.containsValue(nums[i]) != true) {
				return nums[i];
			}
			
		}	
	
		throw new IllegalArgumentException("No two sum solution");
	}

}
